package jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JDBCDemo11 {
    public static void main(String[] args) {
        try (Connection  connection=DBUtil.getConnection();){

            //此代码将数据库连接的事务隔离级别设置为 TRANSACTION_REPEATABLE_READ（可重复读）
            connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);

          //自动提交模式关闭
            connection.setAutoCommit(false);


//向 user 表中插入一条新记录，指定要插入数据的列有 username、password、nickname
// 和 age，而 ? 是占位符，在实际执行该 SQL 语句时，需要为这些占位符提供具体的值。
      String sql = " INSERT INTO user(username,password,nickname,age)" +
                    " VALUES(?,?,?,?)";


           //创建了一个 PreparedStatement 对象 ps
           //  PreparedStatement同时能有效防止 SQL 注入攻击

            PreparedStatement ps= connection.prepareStatement(sql);
            ps.setString(1,"张三");
            ps.setString(2,"123456");
            ps.setString(3,"老三");
            ps.setInt(4,22);

            int num = ps.executeUpdate();

            System.out.println(num>0?"插入成功":"插入失败");

            //需要手动调用 commit() 方法来将之前的操作永久保存到数据库中
            connection.commit();

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
